package gui;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JTextArea;

import red.ConectionManager;
import red.ServerKeepAliveSocket;

import logica.Configuracion;
import logica.mensajes.MensajeTexto;

public class Ventana_Crear_Mensaje extends JDialog {

	private static final long serialVersionUID = -5221274147638391290L;

	private JPanel p1, p2;
	private JButton b1;
	private JTextArea texto;
	
	// Quiero enviar un mensaje:
	private MensajeTexto msj;
	// Con los datos:
	private int	id_msj; 
	private int id_cap;
	// a la Chacra con id_chacra
	private int id_chacra;
	// Para eso tengo que usar el:
	private ConectionManager cm;
	
	// Este contructor es para responder a un cierto mensaje
	public Ventana_Crear_Mensaje(int id_chacra, ConectionManager c){
		this();
		this.id_chacra = id_chacra;
		this.cm = c;
	}
		
	/* Constructor */
	public Ventana_Crear_Mensaje(){
		setLayout(new BorderLayout());
		
		msj = new MensajeTexto();
		
		// p1
		p1    = new JPanel(new BorderLayout());
		p1.setBorder(BorderFactory.createTitledBorder("Mensaje: "));
		texto = new JTextArea();
			
		p1.add(texto, BorderLayout.CENTER);
		
		// p2 
		p2 = new JPanel();
		b1 = new JButton("Enviar Mensaje"); 
		b1.addActionListener(new mandar_mensaje_action());
		
		p2.add(b1);
		
		add(p1, BorderLayout.CENTER);
		add(p2, BorderLayout.SOUTH);
		
		setModal(true);
		setTitle("S.A.E.R - C.A.P (Respuesta)");
		setSize(new Dimension(700, 500));
		setResizable(false);
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
	}
	
	private class mandar_mensaje_action implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			// Completo datos del mensaje
			id_msj = 1;
			id_cap  = Configuracion.getIdlugar();
			
			msj.setIDmensaje(id_msj);
			msj.setCuerpo(texto.getText());
			msj.setIDorigen(id_cap);
			
			// Envio mensaje
			ServerKeepAliveSocket kas = cm.buscar(id_chacra);
			if(kas != null){
				setVisible(false);
				// JOptionPane.showMessageDialog(null, "No se selecciono ningun Tab");
				
				try {
					kas.send(msj);
				} catch (IOException e1) {
					System.err.println("No se pudo contestar el mensaje");
					e1.printStackTrace();
				}				
			} else {
				
				
			}
			
		
		} // Fin actionPerformed
	}
	
	
}
